iT邦幫忙

0

【PySide6】事件(Event)_視窗事件

  • 分享至 

  • xImage
  •  

本文主要是了解視窗事件被觸發的相關時機

程式碼:form_event.py

"""
程式名稱:form_event.py
程式功能:
1. 視窗本身相關事件了解
"""
import sys
from PySide6.QtGui import QFocusEvent
from PySide6.QtWidgets import (
    QWidget, QApplication)

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('form_event.py')
        self.setGeometry(400, 250, 500, 300)
        self.show()

    def changeEvent(self, event):
        print('changeEvent')
        
    def closeEvent(self, event):
        print('closeEvent')

    def hideEvent(self, event):
        print('hideEvent')
        
    def moveEvent(self, event):
        print('moveEvent')
        
    def resizeEvent(self, event):
        print('resizeEvent')
        
    def showEvent(self, event):
        print('showEvent')

if __name__ == '__main__':
    app = QApplication()
    my_app = MyApp()
    sys.exit(app.exec())

底下為console輸出訊息:
視窗啟動時:
changeEvent
moveEvent
resizeEvent
showEvent
paintEvent
paintEvent
changeEvent
paintEvent

視窗縮小至工作列時:
changeEvent
hideEvent
changeEvent

視窗被其它視窗蓋住/當其它視窗移開:
(此視窗要為作用中視窗,如果用滑鼠移動其它視窗去遮蓋、移開,因動作視窗是在滑鼠所按住的視窗,故不會觸發事件)
changeEvent
paintEvent

視窗重新顯示時:
showEvent
changeEvent
changeEvent
paintEvent

視窗移動時:
一直觸發moveEvent

視窗調整大小時:
changeEvent
paintEvent
resizeEvent
paintEvent ....
resizeEvent ....

當視窗關閉時:
changeEvent
closeEvent
changeEvent
hideEvent

事件被觸發的時機

函式名稱 何時觸發
changeEvent 視窗啟動
視窗縮小至工作列
  視窗被其它視窗蓋住當其它視窗移開
視窗重新顯示
視窗調整大小時
視窗關閉時
closeEvent 視窗關閉
hideEvent 視窗縮小至工作列
視窗關閉
moveEvent 視窗啟動
視窗移動
paintEvent 視窗啟動
視窗被其它視窗蓋住/當其它視窗移開
視窗重新顯示
resizeEvent 視窗啟動
視窗被其它視窗蓋住/當其它視窗移開
視窗調整大小
showEvent 視窗啟動
視窗重新顯示

有時一個操作動作當中,事件不只被觸發一次,如changeEvent在很多操作當中就被觸發多次。有些是連續觸發,如滑鼠移動視窗就會一直觸發moveEvent。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言